package com.qf.Utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.util.Properties;

/**
 * @author:工具类
 * @create: 2023-04-06 19:12
 * @Description:用于properties文件的读取 单例设计模式，用于使配置文件只加载一次
 */
public enum DBUtils {
    DB;
    //DataSource 阿里连接池Druid的数据源对象，连接对象的存储容器
    //通过DruidDataSourceFactory.createDataSource读取properties文件内容进行连接
    //并且讲连接池的数据源对象赋值给DataSource
    private DataSource ds;

    //构造方法
    DBUtils() {
        //创建Properties用于读取Properties文件
        try {
            Properties pro = new Properties();
            //pro.load对象读取properties文件内容
            pro.load(DBUtils.class.getResourceAsStream("db.properties"));
            //通过DruidDataSourceFactory.createDataSource读取properties文件内容进行连接
            System.out.println(pro);
            ds = DruidDataSourceFactory.createDataSource(pro);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 外部类访问不到私有的DataSource对象，提供一个共有的方法用于访问
     *
     * @return连接池的数据源对象
     */
    public DataSource getDs() {
        return ds;
    }
}
